-- PATTERN 4+4 cerco in "rifOrdine" la commessa in formato 4-4 o 4/4 es. 9999-2099
;WITH cte AS
(
SELECT	rifOrdine AS rifOrdine_Orig,
        PATINDEX( '%[0-9][0-9][0-9][0-9]-[2][0][0-9][0-9]%', rifOrdine)  AS iniziobarra,
        PATINDEX( '%[0-9][0-9][0-9][0-9]/[2][0][0-9][0-9]%', rifOrdine)  AS inizioslash,
        CASE WHEN PATINDEX( '%[0-9][0-9][0-9][0-9]-[2][0][0-9][0-9]%', rifOrdine) > 0
             THEN PATINDEX( '%[0-9][0-9][0-9][0-9]-[2][0][0-9][0-9]%', rifOrdine)
             ELSE PATINDEX( '%[0-9][0-9][0-9][0-9]/[2][0][0-9][0-9]%', rifOrdine)
        END AS inizio,
        urlOrdine AS urlOrdine_Orig,
    *
FROM   DatiCommessa
WHERE  rifOrdine IS NOT NULL
AND ISNULL(urlOrdine,'') = '?'
AND (PATINDEX( '%[0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]%', rifOrdine) = 0      -- escludo pattern 5+4
   AND PATINDEX( '%[0-9][0-9][0-9][0-9][0-9]/[0-9][0-9][0-9][0-9]%', rifOrdine) = 0 )
AND ( PATINDEX( '%[0-9][0-9][0-9][0-9]-[2][0][0-9][0-9]%', rifOrdine) > 0
   OR PATINDEX( '%[0-9][0-9][0-9][0-9]/[2][0][0-9][0-9]%', rifOrdine) > 0 )
)
,cte2 AS   -- cerco se ci sono riferimenti a + ordini/commessa
(
SELECT  RIGHT(rifOrdine, LEN(rifOrdine)-inizio-8 ) As len1,
        PATINDEX( '%[0-9][0-9][0-9][0-9]-[2][0][0-9][0-9]%', RIGHT(rifOrdine, (LEN(rifOrdine)-inizio-8) ) ) AS secondabarra,
        PATINDEX( '%[0-9][0-9][0-9][0-9]/[2][0][0-9][0-9]%', RIGHT(rifOrdine, (LEN(rifOrdine)-inizio-8) ) ) AS secondoslash
        ,*
FROM cte
)
-- SELECT SUBSTRING(rifOrdine_Orig, inizio, 9 ) AS NewurlOrdine,cte2.*
UPDATE DatiCommessa
SET urlOrdine = SUBSTRING(rifOrdine_Orig, inizio, 9 )
FROM DatiCommessa AS dc
INNER JOIN cte2 ON dc.idxFase = cte2.idxFase
-- WHERE ( iniziobarra = 0 OR inizioslash = 0 ) -- se ho pi codici non lo scrivo ( quale prendo ? )
WHERE secondabarra = 0 AND secondoslash = 0


-- select per modifica di quelli non modificati
SELECT * FROM DatiCommessa
WHERE AnnoCommessa = 2013
AND urlOrdine = '?'